# 2024.06.30——CSDN博客——【Python】专栏
# 循环语句——2024.06.完成

# 条件语句——单分支
if True:  # True代表的是语句中的判断语句
    pass  # pass——空语句，代表的是if语句块中的语句
# 条件语句——双分支
if True:  # if后带有判断语句
    pass
else:  # else后不带判断语句
    pass
# 条件语句——多分支
if 1:
    pass
elif 2:  # elif可以存在多个
    pass
else:
    pass

# if嵌套
if True:
    if True:  # 在if语句的任一分支中都能继续使用if语句
        # ……
        pass
    else:
        pass
    pass
else:
    pass
pass

# 省略else
# 双分支或多分支语句中不需要使用else的判断逻辑时可以省略else
if True:
    pass
pass  # 双分支语句省略else变为单分支语句

if 1:
    pass
elif 2:
    pass
pass  # 三分支语句省略else变为双分支语句


# def ignoreElse():
#     # 在函数中if、elif分支中存在转向语句return，可以省略else
#     if True:
#         return True
#     return False
#
# while True:
#     # 在循环语句中，if、elif分支中存在转向语句break、continue，可以省略else
#     if 1:
#         continue
#     elif 2:
#         break
#     pass

# match……case语句
a = 0
match a + 1:  # match 引导词后跟一个表达式
    case 1:  # case 引导词后可以跟常量、变量、函数、通配符等
        pass  # case 语句块中的内容都是独立的语句块
    case 2:
        pass
    case _:  # 通配符_ 可以指代一切内容，相当于default
        pass

# 循环语句——while循环
# i = 1  # 循环对象语句
# while i != 100:
#     # while——语句引导词
#     # i != 100——循环判断语句
#     print(i)  # 循环体语句——循环语句中需要执行的具体内容
#     i += 1  # 循环递进语句——循环对象根据递进语句逐渐靠近循环的介绍条件
print('\n')

# 循环语句——for循环
# for i in range(1, 101):
#     print(f"{i:<3d}", end=' ')
#     if i % 10 == 0:
#         print('\n')
# # i——循环对象
# # in——成员运算符
# # range()——可迭代对象，也可以是字符串、元组、列表……
# print('\n')

# break 与continue
# for i in range(1, 101):
#     if i == 10:
#         continue  # continue——立即结束当前循环，进入下一次循环
#     print(f"{i:<3d}", end=' ')
#     if i == 20:
#         break  # break——立即结束循环并跳出循环
# print('\n')

# 死循环
# i = 1
# while True:
#     print(i)
#     i += 1
#     if i == 10:
#         break
# print('\n')

# while……else语句
# i = 1
# while i <= 10:
#     print(i)
#     i += 1
# else:
#     print('循环结束\n')

# for……else语句
# for i in range(1, 11):
#     print(i)
# else:
#     print('循环结束\n')

# 正常循环——输出1~10
i = 1
while i <= 10:
    print(i)
    i += 1
    if i == 5:
        break
print('循环结束\n')

# 带有转向语句的循环……else语句
i = 1
while i <= 10:
    print(i)
    i += 1
    if i == 5:
        break
else:
    print('循环结束\n')
print('\n')

# 循环……else的运用场景
'''
通过双层循环来判断一个数是否为质数
第一层循环为需要判断的数
第二层循环为判断该数是否为质数
'''
# 加else语句
for i in range(2, 6):
    for j in range(2, i):
        if i % j == 0:
            print(f'{i}不是质数')
            break
    else:
        print(f'{i}是质数')
print('\n')
# 不加else语句
for i in range(2, 6):
    for j in range(2, i):
        if i % j == 0:
            print(f'{i}不是质数')
            break
    print(f'{i}是质数')
print('\n')

# range()函数
for i in range(2, 11, 2):
    # 通过步长2使循环输出十以内的偶数
    print(i)
print('\n')
for i in range(10, 1, -2):
    # 当步长<0时，对象语句会依次递减
    print(i)
